home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Complete Linux
/
Complete Linux.iso
/
xwindows
/
demos
/
xfract_1.z
/
xfract_1
/
xfractint-1.06
/
tgaview.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-09-28
|
2KB
|
69 lines
/* Routine to decode Targa 16 bit RGB file
*/
/* 16 bit .tga files were generated for continuous potential "potfile"s
from version 9.? thru version 14. Replaced by double row gif type
file (.pot) in version 15. Delete this code after a few more revs.
*/
#include <stdio.h>
#include "fractint.h"
#include "targa_lc.h"
#include "prototyp.h"
extern char readname[]; /* file name */
extern unsigned int boxx[]; /* write-line routines use this */
extern int colors;
extern int rowcount;
static FILE *fptarga = NULL; /* FILE pointer */
extern unsigned int height; /* image height */
extern int (*outln)();
/* Main entry decoder */
tgaview()
{
int i;
int cs;
unsigned int width;
struct fractal_info info;
FILE *t16_open();
if((fptarga = t16_open(readname, (int *)&width, (int *)&height, &cs, (U8 *)&info))==NULL)
return(-1);
rowcount = 0;
for (i=0; i<height; ++i)
{
t16_getline(fptarga, width, (U16 *)boxx);
if ((*outln)(boxx,width))
{
fclose(fptarga);
fptarga = NULL;
return(-1);
}
if (keypressed())
{
fclose(fptarga);
fptarga = NULL;
return(-1);
}
}
fclose(fptarga);
fptarga = NULL;
return(0);
}
/* Outline function for 16 bit data with 8 bit fudge */
outlin16(BYTE *buffer,int linelen)
{
extern int rowcount;
U16 *buf;
int i;
buf = (U16 *)buffer;
for(i=0;i<linelen;i++)
putcolor(i,rowcount,buf[i]>>8);
rowcount++;
return(0);
}